home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / CIncludes / Displays.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-12  |  25.8 KB  |  694 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Displays.h
  3.  
  4.      Contains:    Display Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1993-1997 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __DISPLAYS__
  19. #define __DISPLAYS__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __COMPONENTS__
  25. #include <Components.h>
  26. #endif
  27. #ifndef __VIDEO__
  28. #include <Video.h>
  29. #endif
  30.  
  31. #ifndef __APPLEEVENTS__
  32. #include <AppleEvents.h>
  33. #endif
  34. #ifndef __EVENTS__
  35. #include <Events.h>
  36. #endif
  37. #ifndef __PROCESSES__
  38. #include <Processes.h>
  39. #endif
  40. #ifndef __DIALOGS__
  41. #include <Dialogs.h>
  42. #endif
  43.  
  44.  
  45. #if PRAGMA_ONCE
  46. #pragma once
  47. #endif
  48.  
  49. #ifdef __cplusplus
  50. extern "C" {
  51. #endif
  52.  
  53. #if PRAGMA_IMPORT
  54. #pragma import on
  55. #endif
  56.  
  57. #if PRAGMA_STRUCT_ALIGN
  58.     #pragma options align=mac68k
  59. #elif PRAGMA_STRUCT_PACKPUSH
  60.     #pragma pack(push, 2)
  61. #elif PRAGMA_STRUCT_PACK
  62.     #pragma pack(2)
  63. #endif
  64.  
  65. #ifndef FOR_GLUE_LIB
  66. #define FOR_GLUE_LIB 0
  67. #endif  /*  ! defined(FOR_GLUE_LIB)  */
  68.  
  69.  
  70. enum {
  71.                                                                 /* AppleEvents Core Suite */
  72.     kAESystemConfigNotice        = FOUR_CHAR_CODE('cnfg'),        /* Core Suite types */
  73.     kAEDisplayNotice            = FOUR_CHAR_CODE('dspl'),
  74.     kAEDisplaySummary            = FOUR_CHAR_CODE('dsum'),
  75.     keyDMConfigVersion            = FOUR_CHAR_CODE('dmcv'),
  76.     keyDMConfigFlags            = FOUR_CHAR_CODE('dmcf'),
  77.     keyDMConfigReserved            = FOUR_CHAR_CODE('dmcr'),
  78.     keyDisplayID                = FOUR_CHAR_CODE('dmid'),
  79.     keyDisplayComponent            = FOUR_CHAR_CODE('dmdc'),
  80.     keyDisplayDevice            = FOUR_CHAR_CODE('dmdd'),
  81.     keyDisplayFlags                = FOUR_CHAR_CODE('dmdf'),
  82.     keyDisplayMode                = FOUR_CHAR_CODE('dmdm'),
  83.     keyDisplayModeReserved        = FOUR_CHAR_CODE('dmmr'),
  84.     keyDisplayReserved            = FOUR_CHAR_CODE('dmdr'),
  85.     keyDisplayMirroredId        = FOUR_CHAR_CODE('dmmi'),
  86.     keyDeviceFlags                = FOUR_CHAR_CODE('dddf'),
  87.     keyDeviceDepthMode            = FOUR_CHAR_CODE('dddm'),
  88.     keyDeviceRect                = FOUR_CHAR_CODE('dddr'),
  89.     keyPixMapRect                = FOUR_CHAR_CODE('dpdr'),
  90.     keyPixMapHResolution        = FOUR_CHAR_CODE('dphr'),
  91.     keyPixMapVResolution        = FOUR_CHAR_CODE('dpvr'),
  92.     keyPixMapPixelType            = FOUR_CHAR_CODE('dppt'),
  93.     keyPixMapPixelSize            = FOUR_CHAR_CODE('dpps'),
  94.     keyPixMapCmpCount            = FOUR_CHAR_CODE('dpcc'),
  95.     keyPixMapCmpSize            = FOUR_CHAR_CODE('dpcs'),
  96.     keyPixMapAlignment            = FOUR_CHAR_CODE('dppa'),
  97.     keyPixMapResReserved        = FOUR_CHAR_CODE('dprr'),
  98.     keyPixMapReserved            = FOUR_CHAR_CODE('dppr'),
  99.     keyPixMapColorTableSeed        = FOUR_CHAR_CODE('dpct'),
  100.     keySummaryMenubar            = FOUR_CHAR_CODE('dsmb'),
  101.     keySummaryChanges            = FOUR_CHAR_CODE('dsch'),
  102.     keyDisplayOldConfig            = FOUR_CHAR_CODE('dold'),
  103.     keyDisplayNewConfig            = FOUR_CHAR_CODE('dnew')
  104. };
  105.  
  106.  
  107. enum {
  108.     dmOnlyActiveDisplays        = true,
  109.     dmAllDisplays                = false
  110. };
  111.  
  112.  
  113.  
  114. enum {
  115.                                                                 /* DMSendDependentNotification notifyClass */
  116.     kDependentNotifyClassShowCursor = FOUR_CHAR_CODE('shcr'),    /* When display mgr shows a hidden cursor during an unmirror */
  117.     kDependentNotifyClassDriverOverride = FOUR_CHAR_CODE('ndrv'), /* When a driver is overridden */
  118.     kDependentNotifyClassDisplayMgrOverride = FOUR_CHAR_CODE('dmgr') /* When display manager is upgraded */
  119. };
  120.  
  121.  
  122.  
  123. enum {
  124.                                                                 /* Switch Flags */
  125.     kNoSwitchConfirmBit            = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
  126.     kDepthNotAvailableBit        = 1,                            /* Current depth not available in new mode */
  127.     kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
  128.     kModeNotResizeBit            = 4,                            /* Do not use this mode to resize display (for cards that mode drives a different connector). */
  129.     kNeverShowModeBit            = 5                                /* This mode should not be shown in the user interface. */
  130. };
  131.  
  132. /*    Summary Change Flags (sticky bits indicating an operation was performed)
  133.     For example, moving a display then moving it back will still set the kMovedDisplayBit.
  134. */
  135.  
  136. enum {
  137.     kBeginEndConfigureBit        = 0,
  138.     kMovedDisplayBit            = 1,
  139.     kSetMainDisplayBit            = 2,
  140.     kSetDisplayModeBit            = 3,
  141.     kAddDisplayBit                = 4,
  142.     kRemoveDisplayBit            = 5,
  143.     kNewDisplayBit                = 6,
  144.     kDisposeDisplayBit            = 7,
  145.     kEnabledDisplayBit            = 8,
  146.     kDisabledDisplayBit            = 9,
  147.     kMirrorDisplayBit            = 10,
  148.     kUnMirrorDisplayBit            = 11
  149. };
  150.  
  151.  
  152.  
  153. enum {
  154.                                                                 /* Notification Messages for extended call back routines */
  155.     kDMNotifyInstalled            = 1,                            /* At install time */
  156.     kDMNotifyEvent                = 2,                            /* Post change time */
  157.     kDMNotifyRemoved            = 3,                            /* At remove time */
  158.     kDMNotifyPrep                = 4,                            /* Pre change time */
  159.     kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
  160.     kDMNotifyDependents            = 6,                            /* Minor notification check without full update */
  161.     kDMNotifySuspendConfigure    = 7,                            /* Temporary end of configuration */
  162.     kDMNotifyResumeConfigure    = 8,                            /* Resume configuration */
  163.                                                                 /* Notification Flags */
  164.     kExtendedNotificationProc    = (1L << 16)
  165. };
  166.  
  167.  
  168. /* types for notifyType */
  169.  
  170. enum {
  171.     kFullNotify                    = 0,                            /* This is the appleevent whole nine yards notify */
  172.     kFullDependencyNotify        = 1                                /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  173. };
  174.  
  175. /* DisplayID/DeviceID constants */
  176.  
  177. enum {
  178.     kDummyDeviceID                = 0x00FF,                        /* This is the ID of the dummy display, used when the last “real” display is disabled.*/
  179.     kInvalidDisplayID            = 0x0000,                        /* This is the invalid ID*/
  180.     kFirstDisplayID                = 0x0100
  181. };
  182.  
  183.  
  184. enum {
  185.                                                                 /* bits for panelListFlags */
  186.     kAllowDuplicatesBit            = 0
  187. };
  188.  
  189.  
  190. enum {
  191.                                                                 /* bits for nameFlags */
  192.     kSuppressNumberBit            = 0,
  193.     kSuppressNumberMask            = 1,
  194.     kForceNumberBit                = 1,
  195.     kForceNumberMask            = 2,
  196.     kSuppressNameBit            = 2,
  197.     kSuppressNameMask            = 4
  198. };
  199.  
  200.  
  201.  
  202. /* Constants for fidelity checks */
  203.  
  204. enum {
  205.     kNoFidelity                    = 0,
  206.     kMinimumFidelity            = 1,
  207.     kDefaultFidelity            = 500,                            /* I'm just picking a number for Apple default panels and engines*/
  208.     kDefaultManufacturerFidelity = 1000                            /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  209. };
  210.  
  211.  
  212. enum {
  213.     kAnyPanelType                = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
  214.     kAnyEngineType                = 0,                            /* Pass to DMNewEngineList for list of all engines*/
  215.     kAnyDeviceType                = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
  216.     kAnyPortType                = 0                                /* Pass to DMNewDevicePortList for list of all devices*/
  217. };
  218.  
  219. /* portListFlags for DM_NewDevicePortList */
  220.  
  221. enum {
  222.                                                                 /* Should offline devices be put into the port list (such as dummy display) */
  223.     kPLIncludeOfflineDevicesBit    = 0
  224. };
  225.  
  226.  
  227. /* confirmFlags for DMConfirmConfiguration */
  228.  
  229. enum {
  230.     kForceConfirmBit            = 0,                            /* Force a confirm dialog */
  231.     kForceConfirmMask            = (1 << kForceConfirmBit)
  232. };
  233.  
  234.  
  235. /* Flags for displayModeFlags */
  236.  
  237. enum {
  238.     kDisplayModeListNotPreferredBit = 0,
  239.     kDisplayModeListNotPreferredMask = (1 << kDisplayModeListNotPreferredBit)
  240. };
  241.  
  242.  
  243. /* Flags for itemFlags */
  244.  
  245. enum {
  246.     kComponentListNotPreferredBit = 0,
  247.     kComponentListNotPreferredMask = (1 << kComponentListNotPreferredBit)
  248. };
  249.  
  250.  
  251. typedef unsigned long                     DMFidelityType;
  252. /* AVID is an ID for ports and devices the old DisplayID type
  253.     is carried on for compatibility
  254. */
  255. typedef unsigned long                     AVIDType;
  256. typedef AVIDType                         DisplayIDType;
  257. typedef void *                            DMListType;
  258. typedef unsigned long                     DMListIndexType;
  259. typedef VDPowerStateRec                 AVPowerStateRec;
  260. typedef VDPowerStateRec *                AVPowerStatePtr;
  261. struct DMComponentListEntryRec {
  262.     DisplayIDType                     itemID;                        /* DisplayID Manager*/
  263.     Component                         itemComponent;                /* Component Manager*/
  264.     ComponentDescription             itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  265.  
  266.     ResType                         itemClass;                    /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
  267.     DMFidelityType                     itemFidelity;                /* How good is this item for the specified search?*/
  268.     ResType                         itemSubClass;                /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
  269.     Point                             itemSort;                    /* Set to 0 - future to sort the items in a sub group.*/
  270.  
  271.     unsigned long                     itemFlags;                    /* Set to 0 (future expansion)*/
  272.     ResType                         itemReserved;                /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
  273.     unsigned long                     itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
  274.     unsigned long                     itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
  275.     unsigned long                     itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
  276.     unsigned long                     itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  277. };
  278. typedef struct DMComponentListEntryRec DMComponentListEntryRec;
  279.  
  280. typedef DMComponentListEntryRec *        DMComponentListEntryPtr;
  281. /* ••• Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  282. struct AVLocationRec {
  283.     unsigned long                     locationConstant;            /* Set to 0 (future expansion - probably an alternate code style)*/
  284. };
  285. typedef struct AVLocationRec AVLocationRec;
  286.  
  287. typedef AVLocationRec *                    AVLocationPtr;
  288. struct DMDepthInfoRec {
  289.     VDSwitchInfoPtr                 depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
  290.     VPBlockPtr                         depthVPBlock;                /* VPBlock (including size, depth and format) */
  291.     UInt32                             depthFlags;                    /* VDVideoParametersInfoRec.csDepthFlags  */
  292.     UInt32                             depthReserved1;                /* Reserved */
  293.     UInt32                             depthReserved2;                /* Reserved */
  294. };
  295. typedef struct DMDepthInfoRec DMDepthInfoRec;
  296.  
  297. typedef DMDepthInfoRec *                DMDepthInfoPtr;
  298. struct DMDepthInfoBlockRec {
  299.     unsigned long                     depthBlockCount;            /* How many depths are there? */
  300.     DMDepthInfoPtr                     depthVPBlock;                /* Array of DMDepthInfoRec */
  301.     unsigned long                     depthBlockFlags;            /* Reserved */
  302.     unsigned long                     depthBlockReserved1;        /* Reserved */
  303.     unsigned long                     depthBlockReserved2;        /* Reserved */
  304. };
  305. typedef struct DMDepthInfoBlockRec DMDepthInfoBlockRec;
  306.  
  307. typedef DMDepthInfoBlockRec *            DMDepthInfoBlockPtr;
  308. struct DMDisplayModeListEntryRec {
  309.     unsigned long                     displayModeFlags;
  310.     VDSwitchInfoPtr                 displayModeSwitchInfo;
  311.     VDResolutionInfoPtr             displayModeResolutionInfo;
  312.     VDTimingInfoPtr                 displayModeTimingInfo;
  313.     DMDepthInfoBlockPtr             displayModeDepthBlockInfo;    /* Information about all the depths*/
  314.     Ptr                             displayModeReserved1;        /* Reserved*/
  315.     StringPtr                         displayModeName;            /* Name of the timing mode*/
  316. };
  317. typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  318.  
  319. typedef DMDisplayModeListEntryRec *        DMDisplayModeListEntryPtr;
  320.  
  321. struct DependentNotifyRec {
  322.     ResType                         notifyType;                    /* What type was the engine that made the change (may be zero)*/
  323.     ResType                         notifyClass;                /* What class was the change (eg geometry, color etc)*/
  324.     DisplayIDType                     notifyPortID;                /* Which device was touched (kInvalidDisplayID -> all or none)*/
  325.     ComponentInstance                 notifyComponent;            /* What engine did it (may be 0)?*/
  326.  
  327.     unsigned long                     notifyVersion;                /* Set to 0 (future expansion)*/
  328.     unsigned long                     notifyFlags;                /* Set to 0 (future expansion)*/
  329.     unsigned long                     notifyReserved;                /* Set to 0 (future expansion)*/
  330.     unsigned long                     notifyFuture;                /* Set to 0 (future expansion)*/
  331. };
  332. typedef struct DependentNotifyRec DependentNotifyRec;
  333.  
  334. typedef DependentNotifyRec *            DependentNotifyPtr;
  335. /* Exports to support Interfaces library containing unused calls */
  336. #if !FOR_GLUE_LIB
  337. #endif  /*  !FOR_GLUE_LIB */
  338.  
  339. typedef CALLBACK_API( void , DMNotificationProcPtr )(AppleEvent *theEvent);
  340. typedef CALLBACK_API( void , DMExtendedNotificationProcPtr )(void *userData, short theMessage, void *notifyData);
  341. typedef CALLBACK_API( void , DMComponentListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  342. typedef CALLBACK_API( void , DMDisplayModeListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  343. typedef STACK_UPP_TYPE(DMNotificationProcPtr)                     DMNotificationUPP;
  344. typedef STACK_UPP_TYPE(DMExtendedNotificationProcPtr)             DMExtendedNotificationUPP;
  345. typedef STACK_UPP_TYPE(DMComponentListIteratorProcPtr)             DMComponentListIteratorUPP;
  346. typedef STACK_UPP_TYPE(DMDisplayModeListIteratorProcPtr)         DMDisplayModeListIteratorUPP;
  347. enum { uppDMNotificationProcInfo = 0x000000C0 };                 /* pascal no_return_value Func(4_bytes) */
  348. enum { uppDMExtendedNotificationProcInfo = 0x00000EC0 };         /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  349. enum { uppDMComponentListIteratorProcInfo = 0x00000FC0 };         /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  350. enum { uppDMDisplayModeListIteratorProcInfo = 0x00000FC0 };     /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  351. #define NewDMNotificationProc(userRoutine)                         (DMNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
  352. #define NewDMExtendedNotificationProc(userRoutine)                 (DMExtendedNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
  353. #define NewDMComponentListIteratorProc(userRoutine)             (DMComponentListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
  354. #define NewDMDisplayModeListIteratorProc(userRoutine)             (DMDisplayModeListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
  355. #define CallDMNotificationProc(userRoutine, theEvent)             CALL_ONE_PARAMETER_UPP((userRoutine), uppDMNotificationProcInfo, (theEvent))
  356. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
  357. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
  358. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  359.  
  360. /* Trap interfaces */
  361.  
  362. #if !FOR_GLUE_LIB
  363. EXTERN_API( GDHandle )
  364. DMGetFirstScreenDevice            (Boolean                 activeOnly)                            TWOWORDINLINE(0x7000, 0xABEB);
  365.  
  366. EXTERN_API( GDHandle )
  367. DMGetNextScreenDevice            (GDHandle                 theDevice,
  368.                                  Boolean                 activeOnly)                            TWOWORDINLINE(0x7001, 0xABEB);
  369.  
  370. EXTERN_API( void )
  371. DMDrawDesktopRect                (Rect *                    globalRect)                            TWOWORDINLINE(0x7002, 0xABEB);
  372.  
  373. EXTERN_API( void )
  374. DMDrawDesktopRegion                (RgnHandle                 globalRgn)                            TWOWORDINLINE(0x7003, 0xABEB);
  375.  
  376.  
  377.  
  378. EXTERN_API( OSErr )
  379. DMBeginConfigureDisplays        (Handle *                displayState)                        THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  380.  
  381. EXTERN_API( OSErr )
  382. DMEndConfigureDisplays            (Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  383.  
  384. EXTERN_API( OSErr )
  385. DMAddDisplay                    (GDHandle                 newDevice,
  386.                                  short                     driver,
  387.                                  unsigned long             mode,
  388.                                  unsigned long             reserved,
  389.                                  unsigned long             displayID,
  390.                                  Component                 displayComponent,
  391.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  392.  
  393. EXTERN_API( OSErr )
  394. DMMoveDisplay                    (GDHandle                 moveDevice,
  395.                                  short                     x,
  396.                                  short                     y,
  397.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  398.  
  399. EXTERN_API( OSErr )
  400. DMDisableDisplay                (GDHandle                 disableDevice,
  401.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  402.  
  403. EXTERN_API( OSErr )
  404. DMEnableDisplay                    (GDHandle                 enableDevice,
  405.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  406.  
  407. EXTERN_API( OSErr )
  408. DMRemoveDisplay                    (GDHandle                 removeDevice,
  409.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  410.  
  411.  
  412.  
  413.  
  414. EXTERN_API( OSErr )
  415. DMSetMainDisplay                (GDHandle                 newMainDevice,
  416.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  417.  
  418. EXTERN_API( OSErr )
  419. DMSetDisplayMode                (GDHandle                 theDevice,
  420.                                  unsigned long             mode,
  421.                                  unsigned long *        depthMode,
  422.                                  unsigned long             reserved,
  423.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  424.  
  425. EXTERN_API( OSErr )
  426. DMCheckDisplayMode                (GDHandle                 theDevice,
  427.                                  unsigned long             mode,
  428.                                  unsigned long             depthMode,
  429.                                  unsigned long *        switchFlags,
  430.                                  unsigned long             reserved,
  431.                                  Boolean *                modeOk)                                THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  432.  
  433. EXTERN_API( OSErr )
  434. DMGetDeskRegion                    (RgnHandle *            desktopRegion)                        THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  435.  
  436. EXTERN_API( OSErr )
  437. DMRegisterNotifyProc            (DMNotificationUPP         notificationProc,
  438.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  439.  
  440. EXTERN_API( OSErr )
  441. DMRemoveNotifyProc                (DMNotificationUPP         notificationProc,
  442.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  443.  
  444.  
  445. EXTERN_API( OSErr )
  446. DMQDIsMirroringCapable            (Boolean *                qdIsMirroringCapable)                THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  447.  
  448. EXTERN_API( OSErr )
  449. DMCanMirrorNow                    (Boolean *                canMirrorNow)                        THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  450.  
  451. EXTERN_API( OSErr )
  452. DMIsMirroringOn                    (Boolean *                isMirroringOn)                        THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  453.  
  454. EXTERN_API( OSErr )
  455. DMMirrorDevices                    (GDHandle                 gD1,
  456.                                  GDHandle                 gD2,
  457.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  458.  
  459. EXTERN_API( OSErr )
  460. DMUnmirrorDevice                (GDHandle                 gDevice,
  461.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  462.  
  463. EXTERN_API( OSErr )
  464. DMGetNextMirroredDevice            (GDHandle                 gDevice,
  465.                                  GDHandle *                mirroredDevice)                        THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  466.  
  467. EXTERN_API( OSErr )
  468. DMBlockMirroring                (void)                                                        TWOWORDINLINE(0x701C, 0xABEB);
  469.  
  470. EXTERN_API( OSErr )
  471. DMUnblockMirroring                (void)                                                        TWOWORDINLINE(0x701D, 0xABEB);
  472.  
  473. EXTERN_API( OSErr )
  474. DMGetDisplayMgrA5World            (Ptr *                    dmA5)                                THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  475.  
  476. EXTERN_API( OSErr )
  477. DMGetDisplayIDByGDevice            (GDHandle                 displayDevice,
  478.                                  DisplayIDType *        displayID,
  479.                                  Boolean                 failToMain)                            THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  480.  
  481. EXTERN_API( OSErr )
  482. DMGetGDeviceByDisplayID            (DisplayIDType             displayID,
  483.                                  GDHandle *                displayDevice,
  484.                                  Boolean                 failToMain)                            THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  485.  
  486. EXTERN_API( OSErr )
  487. DMSetDisplayComponent            (GDHandle                 theDevice,
  488.                                  Component                 displayComponent)                    THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  489.  
  490. EXTERN_API( OSErr )
  491. DMGetDisplayComponent            (GDHandle                 theDevice,
  492.                                  Component *            displayComponent)                    THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  493.  
  494. EXTERN_API( OSErr )
  495. DMNewDisplay                    (GDHandle *                newDevice,
  496.                                  short                     driverRefNum,
  497.                                  unsigned long             mode,
  498.                                  unsigned long             reserved,
  499.                                  DisplayIDType             displayID,
  500.                                  Component                 displayComponent,
  501.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  502.  
  503. EXTERN_API( OSErr )
  504. DMDisposeDisplay                (GDHandle                 disposeDevice,
  505.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  506.  
  507. EXTERN_API( OSErr )
  508. DMResolveDisplayComponents        (void)                                                        TWOWORDINLINE(0x7025, 0xABEB);
  509.  
  510. #endif  /*  !FOR_GLUE_LIB */
  511.  
  512. EXTERN_API( OSErr )
  513. DMRegisterExtendedNotifyProc    (DMExtendedNotificationUPP  notifyProc,
  514.                                  void *                    notifyUserData,
  515.                                  unsigned short         nofifyOnFlags,
  516.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  517.  
  518. EXTERN_API( OSErr )
  519. DMRemoveExtendedNotifyProc        (DMExtendedNotificationUPP  notifyProc,
  520.                                  void *                    notifyUserData,
  521.                                  ProcessSerialNumberPtr  whichPSN,
  522.                                  unsigned short         removeFlags)                        THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  523.  
  524. EXTERN_API( OSErr )
  525. DMNewAVPanelList                (DisplayIDType             displayID,
  526.                                  ResType                 panelType,
  527.                                  DMFidelityType         minimumFidelity,
  528.                                  unsigned long             panelListFlags,
  529.                                  unsigned long             reserved,
  530.                                  DMListIndexType *        thePanelCount,
  531.                                  DMListType *            thePanelList)                        THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  532.  
  533. EXTERN_API( OSErr )
  534. DMNewAVEngineList                (DisplayIDType             displayID,
  535.                                  ResType                 engineType,
  536.                                  DMFidelityType         minimumFidelity,
  537.                                  unsigned long             engineListFlags,
  538.                                  unsigned long             reserved,
  539.                                  DMListIndexType *        engineCount,
  540.                                  DMListType *            engineList)                            THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  541.  
  542. EXTERN_API( OSErr )
  543. DMNewAVDeviceList                (ResType                 deviceType,
  544.                                  unsigned long             deviceListFlags,
  545.                                  unsigned long             reserved,
  546.                                  DMListIndexType *        deviceCount,
  547.                                  DMListType *            deviceList)                            THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  548.  
  549. EXTERN_API( OSErr )
  550. DMNewAVPortListByPortType        (ResType                 subType,
  551.                                  unsigned long             portListFlags,
  552.                                  unsigned long             reserved,
  553.                                  DMListIndexType *        devicePortCount,
  554.                                  DMListType *            theDevicePortList)                    THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  555.  
  556. EXTERN_API( OSErr )
  557. DMGetIndexedComponentFromList    (DMListType             panelList,
  558.                                  DMListIndexType         itemIndex,
  559.                                  unsigned long             reserved,
  560.                                  DMComponentListIteratorUPP  listIterator,
  561.                                  void *                    userData)                            THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  562.  
  563. EXTERN_API( OSErr )
  564. DMDisposeList                    (DMListType             panelList)                            THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  565.  
  566. EXTERN_API( OSErr )
  567. DMGetNameByAVID                    (AVIDType                 theID,
  568.                                  unsigned long             nameFlags,
  569.                                  Str255                 name)                                THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  570.  
  571. EXTERN_API( OSErr )
  572. DMNewAVIDByPortComponent        (Component                 thePortComponent,
  573.                                  ResType                 portKind,
  574.                                  unsigned long             reserved,
  575.                                  AVIDType *                newID)                                THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  576.  
  577. EXTERN_API( OSErr )
  578. DMGetPortComponentByAVID        (DisplayIDType             thePortID,
  579.                                  Component *            thePortComponent,
  580.                                  ComponentDescription *    theDesciption,
  581.                                  ResType *                thePortKind)                        THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  582.  
  583. EXTERN_API( OSErr )
  584. DMSendDependentNotification        (ResType                 notifyType,
  585.                                  ResType                 notifyClass,
  586.                                  AVIDType                 displayID,
  587.                                  ComponentInstance         notifyComponent)                    THREEWORDINLINE(0x303C, 0x0830, 0xABEB);
  588.  
  589. EXTERN_API( OSErr )
  590. DMDisposeAVComponent            (Component                 theAVComponent)                        THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  591.  
  592. EXTERN_API( OSErr )
  593. DMSaveScreenPrefs                (unsigned long             reserved1,
  594.                                  unsigned long             saveFlags,
  595.                                  unsigned long             reserved2)                            THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  596.  
  597. EXTERN_API( OSErr )
  598. DMNewAVIDByDeviceComponent        (Component                 theDeviceComponent,
  599.                                  ResType                 portKind,
  600.                                  unsigned long             reserved,
  601.                                  DisplayIDType *        newID)                                THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  602.  
  603. EXTERN_API( OSErr )
  604. DMNewAVPortListByDeviceAVID        (AVIDType                 theID,
  605.                                  DMFidelityType         minimumFidelity,
  606.                                  unsigned long             portListFlags,
  607.                                  unsigned long             reserved,
  608.                                  DMListIndexType *        devicePortCount,
  609.                                  DMListType *            theDevicePortList)                    THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  610.  
  611. EXTERN_API( OSErr )
  612. DMGetDeviceComponentByAVID        (AVIDType                 theDeviceID,
  613.                                  Component *            theDeviceComponent,
  614.                                  ComponentDescription *    theDesciption,
  615.                                  ResType *                theDeviceKind)                        THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  616.  
  617. EXTERN_API( OSErr )
  618. DMNewDisplayModeList            (DisplayIDType             displayID,
  619.                                  unsigned long             modeListFlags,
  620.                                  unsigned long             reserved,
  621.                                  DMListIndexType *        thePanelCount,
  622.                                  DMListType *            thePanelList)                        THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  623.  
  624. EXTERN_API( OSErr )
  625. DMGetIndexedDisplayModeFromList    (DMListType             panelList,
  626.                                  DMListIndexType         itemIndex,
  627.                                  unsigned long             reserved,
  628.                                  DMDisplayModeListIteratorUPP  listIterator,
  629.                                  void *                    userData)                            THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  630.  
  631. EXTERN_API( OSErr )
  632. DMGetGraphicInfoByAVID            (AVIDType                 theID,
  633.                                  PicHandle *            theAVPcit,
  634.                                  Handle *                theAVIconSuite,
  635.                                  AVLocationRec *        theAVLocation)                        THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  636.  
  637. EXTERN_API( OSErr )
  638. DMGetAVPowerState                (AVIDType                 theID,
  639.                                  AVPowerStatePtr         getPowerState,
  640.                                  unsigned long             reserved1)                            THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  641.  
  642. EXTERN_API( OSErr )
  643. DMSetAVPowerState                (AVIDType                 theID,
  644.                                  AVPowerStatePtr         setPowerState,
  645.                                  unsigned long             powerFlags,
  646.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  647.  
  648. EXTERN_API( OSErr )
  649. DMGetDeviceAVIDByPortAVID        (AVIDType                 portAVID,
  650.                                  AVIDType *                deviceAVID)                            THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  651.  
  652. EXTERN_API( OSErr )
  653. DMGetEnableByAVID                (AVIDType                 theAVID,
  654.                                  Boolean *                isAVIDEnabledNow,
  655.                                  Boolean *                canChangeEnableNow)                    THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  656.  
  657. EXTERN_API( OSErr )
  658. DMSetEnableByAVID                (AVIDType                 theAVID,
  659.                                  Boolean                 doEnable,
  660.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  661.  
  662. EXTERN_API( OSErr )
  663. DMGetDisplayMode                (GDHandle                 theDevice,
  664.                                  VDSwitchInfoPtr         switchInfo)                            THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  665.  
  666. EXTERN_API( OSErr )
  667. DMConfirmConfiguration            (ModalFilterUPP         filterProc,
  668.                                  UInt32                 confirmFlags,
  669.                                  UInt32                 reserved,
  670.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x083F, 0xABEB);
  671.  
  672.  
  673.  
  674. #if PRAGMA_STRUCT_ALIGN
  675.     #pragma options align=reset
  676. #elif PRAGMA_STRUCT_PACKPUSH
  677.     #pragma pack(pop)
  678. #elif PRAGMA_STRUCT_PACK
  679.     #pragma pack()
  680. #endif
  681.  
  682. #ifdef PRAGMA_IMPORT_OFF
  683. #pragma import off
  684. #elif PRAGMA_IMPORT
  685. #pragma import reset
  686. #endif
  687.  
  688. #ifdef __cplusplus
  689. }
  690. #endif
  691.  
  692. #endif /* __DISPLAYS__ */
  693.  
  694.